package com.miniTwitter.domain;

import com.miniTwitter.exceptions.InvalidRelationshipStateException;

enum EstadoRelacion{PENDIENTE,ACEPTADA,RECHAZADA}

public class Relacion {
	
	private Usuario sigueA;
	private EstadoRelacion estadoRelacion;
	

	public Relacion(Usuario sigueA){
		this.sigueA = sigueA;
		this.estadoRelacion = EstadoRelacion.PENDIENTE;
	}
	
	public void pasarAAceptada() throws InvalidRelationshipStateException{
		if (this.estadoRelacion != EstadoRelacion.PENDIENTE)
			throw new InvalidRelationshipStateException("No puede ACEPTAR una relacion si esta no esta PENDIENTE");
		
		this.estadoRelacion = EstadoRelacion.ACEPTADA;	
	}
	
	public void pasarARechazada() throws InvalidRelationshipStateException{
		if (this.estadoRelacion != EstadoRelacion.PENDIENTE)
			throw new InvalidRelationshipStateException("No puede RECHAZAR una relacion si esta no esta PENDIENTE");
		
		this.estadoRelacion = EstadoRelacion.ACEPTADA;
	}
	
	public boolean esDeUsuario(String userName){
		return (this.sigueA.getUserName().equals(userName));
	}
	
	public boolean estaAceptada(){
		return(this.estadoRelacion == EstadoRelacion.ACEPTADA);
	}
	
	public Usuario getSigueA() {
		return sigueA;
	}

	public void setSigueA(Usuario sigueA) {
		this.sigueA = sigueA;
	}

	public EstadoRelacion getEstadoRelacion() {
		return estadoRelacion;
	}
}
